package org.mtmi.ui.actions;

import org.mtmi.ui.controls.edits.AddKeyboardOctaveAction;
import org.mtmi.ui.controls.edits.ChangeAxisRangeValueAction;
import org.mtmi.ui.controls.edits.ChangeRangeValueAction;
import org.mtmi.ui.controls.edits.ControlBackgroundAction;
import org.mtmi.ui.controls.edits.ControlForegroundAction;
import org.mtmi.ui.controls.edits.KnobDotColorAction;
import org.mtmi.ui.controls.edits.KnobForegroundAction;
import org.mtmi.ui.controls.edits.KnobTypeAction;
import org.mtmi.ui.controls.edits.KnobValueColorAction;
import org.mtmi.ui.controls.edits.RemoveKeyboardOctaveAction;
import org.mtmi.ui.controls.edits.SliderThumbColorAction;
import org.mtmi.ui.controls.edits.ToggleOrientationAction;
import org.mtmi.ui.controls.edits.ValueTransformerEditCurveAction;
import org.mtmi.ui.controls.midi.ChangeMidiChannelAction;
import org.mtmi.ui.controls.midi.ChangeMidiControllerAction;
import org.mtmi.ui.controls.midi.ChangeMidiInstrumentAction;
import org.mtmi.ui.controls.midi.ChangeMidiOutputAction;
import org.mtmi.ui.controls.midi.ChangeMidiValueAction;
import org.mtmi.ui.controls.midi.ChangeMidiVelocityAction;

/**
 * This class provide access to retargettable actions.
 * 
 */
public class ActionFactory 
{
	public static ControlForegroundAction FOREGROUND_COLOR = new ControlForegroundAction();
	public static ControlBackgroundAction BACKGROUND_COLOR = new ControlBackgroundAction();
	
	public static ChangeRangeValueAction CHANGE_RANGE_VALUE = new ChangeRangeValueAction();
	public static ChangeAxisRangeValueAction CHANGE_H_AXIS_RANGE_VALUE = new ChangeAxisRangeValueAction( true );
	public static ChangeAxisRangeValueAction CHANGE_V_AXIS_RANGE_VALUE = new ChangeAxisRangeValueAction( false );
	public static SliderThumbColorAction SLIDER_THUMB_COLOR = new SliderThumbColorAction();

	public static ToggleOrientationAction TOGGLE_ORIENTATION = new ToggleOrientationAction();

	public static KnobTypeAction KNOB_TYPE= new KnobTypeAction();
	public static KnobForegroundAction KNOB_FOREGROUND_COLOR = new KnobForegroundAction();
	public static KnobDotColorAction KNOB_DOT_COLOR = new KnobDotColorAction();
	public static KnobValueColorAction KNOB_VALUE_COLOR = new KnobValueColorAction();

	public static ValueTransformerEditCurveAction VALUE_TRANSFORMER_EDIT_CURVE= new ValueTransformerEditCurveAction();

	public static AddKeyboardOctaveAction KEYBOARD_ADD_OCTAVE = new AddKeyboardOctaveAction( null );
	public static RemoveKeyboardOctaveAction KEYBOARD_REMOVE_OCTAVE = new RemoveKeyboardOctaveAction( null );
	
	public static ChangeMidiOutputAction MIDI_CHANGE_OUTPUT = new ChangeMidiOutputAction( null );
	public static ChangeMidiChannelAction MIDI_CHANGE_CHANNEL = new ChangeMidiChannelAction( null );
	public static ChangeMidiInstrumentAction MIDI_CHANGE_INSTRUMENT = new ChangeMidiInstrumentAction();
	public static ChangeMidiVelocityAction MIDI_CHANGE_VELOCITY = new ChangeMidiVelocityAction();
	public static ChangeMidiControllerAction MIDI_CHANGE_CONTROLLER = new ChangeMidiControllerAction();
	public static ChangeMidiValueAction MIDI_CHANGE_VALUE = new ChangeMidiValueAction();
}
